<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="mfuny.ggongal.admin.json.JsonCreater" %>
<%@ page import="java.util.*" %>
<%@ page import="org.json.simple.*" %>
<%@ page import="mfuny.ggongal.admin.http.HttpAd" %>
<%@ page import="mfuny.ggongal.admin.play.PlayService" %>
<%@ page import="mfuny.ggongal.admin.debug.Debug" %>
<%@ page import="mfuny.ggongal.admin.http.HttpAdDecoder" %>
<%@ page trimDirectiveWhitespaces="true" %>
<%
request.setCharacterEncoding( "utf-8" );
response.setContentType( "text/html; charset=utf-8" );

JsonCreater jc = new JsonCreater();
HttpAd ad = new HttpAd();
PlayService play = new PlayService();
HttpAdDecoder decoder = new HttpAdDecoder();

String ggongal = request.getParameter("ggongal");

if ( ggongal != null ) {
	try{
		String result = decoder.receiveDecode(ggongal);
		out.print(result);
	} catch(Exception e) {
		Debug.toDebugFile(e, "ggongal");
	}
	return;
}

String tag = request.getParameter( "tag" );

//오늘의 꽁게임.
if ( tag.equals( "ad_ggongToday" )) {
	JSONObject json = null;
	try{
		json = ad.ad_ggongToday( );
		out.print( json.toJSONString( ) );
	}catch(Exception e){
		Debug.toDebugFile(e, tag);
		json = new JSONObject();
		json.put("responseCode", -1);
		out.print(json.toJSONString());
	}
}
//현재시간부터의 오늘의 타임게임.
else if ( tag.equals( "ad_timeToday" )) {
	JSONObject json = null;
	try{
		json = ad.ad_timeToday( );
		out.print( json.toJSONString( ) );
	}catch(Exception e){
		Debug.toDebugFile(e, tag);
		json = new JSONObject();
		json.put("responseCode", -1);
		out.print(json.toJSONString());
	}
}
//현재시간부터의 오늘의 스페셜게임.
else if ( tag.equals( "ad_specialToday" )) {
	JSONObject json = null;
	try{
		json = ad.ad_specialToday( );
		out.print( json.toJSONString( ) );
	}catch(Exception e){
		Debug.toDebugFile(e, tag);
		json = new JSONObject();
		json.put("responseCode", -1);
		out.print(json.toJSONString());
	}
}
//오늘의 경품게임 알람시간 전용 데이터.
else if ( tag.equals( "ad_alarmToday" )) {
	try{
		JSONObject json = ad.ad_alarmToday( );
		out.print( json.toJSONString( ) );
	}catch(Exception e){
		Debug.toDebugFile(e, tag);
	}
}
//광고번호로 특정 광고정보 가져오기.
else if ( tag.equals( "ad_oneAd" )) {
	try{
		int ad_no = Integer.parseInt( request.getParameter( "ad_no" ) );
		JSONObject json = ad.ad_oneAd( ad_no );
		out.print( json.toJSONString( ) );
	}catch(Exception e){
		Debug.toDebugFile(e, tag + " / ad_no : "+ request.getParameter("ad_no"));
	}
}
//광고번호로 특정 광고정보 가져오기(다중).
else if ( tag.equals( "ad_adsInfo" )) {
	try{
		String ads = request.getParameter( "ad_no" );
		JSONObject json = ad.ad_adsInfo( ads );
		out.print( json.toJSONString( ) );
	}catch(Exception e){
		Debug.toDebugFile(e, tag);
	}
}
//광고번호로 해당 경품 정보 가져오기.
else if(tag.equals("ad_getGiftDetail")) {
	try{
		int ad_no = Integer.parseInt(request.getParameter("ad_no"));
		JSONObject json = ad.ad_getGiftDetail(ad_no);
		out.print(json.toJSONString());
	}catch(Exception e){
		Debug.toDebugFile(e, tag);
	}
}

//광고번호로 해당 경품 정보 가져오기(등수 포함).
else if(tag.equals("ad_getGiftDetail2")) {
	JSONObject json = null;
	int ad_no = Integer.parseInt(request.getParameter("ad_no"));
	try{
		json = ad.ad_getGiftDetailWithRank(ad_no);
		out.print(json.toJSONString());
	}catch(Exception e){
		Debug.toDebugFile(e, tag + " / " + ad_no);
		json = new JSONObject();
		json.put("responseCode", -1);
		json.put("error", e);
		out.print(json.toJSONString());
	}
}

//특정 광고 실시간 랭킹.
else if(tag.equals("ad_getRank")) {
	JSONObject json = null;
	try {
		String id = request.getParameter("id");
		int ad_no = Integer.parseInt(request.getParameter("ad_no"));
		int start = Integer.parseInt(request.getParameter("start"));
		String days = request.getParameter("days");
		json = ad.ad_getRank(id, ad_no, start, days);
		out.print(json.toJSONString());
	} catch (Exception e) {
		Debug.toDebugFile(e, tag);
		json = new JSONObject();
		json.put("responseCode", -1);
		json.put("error", e);
		out.print(json.toJSONString());
	}
}

//전일 당첨자 리스트.
else if(tag.equals("ad_getYesterdayWinner")) {
	JSONObject json = null;
	try{
		json = ad.ad_getYesterdayWinner();
		out.print(json.toJSONString());
	}catch(Exception e) {
		Debug.toDebugFile(e, tag);
		json = new JSONObject();
		json.put("responseCode", -2);
		json.put("error", e);
		out.print(json.toJSONString());
	}
}

//스페셜 게임에 해당 휴대폰번호로 플레이 한 경우 진입 제한.
else if(tag.equals("ad_checkSGame")) {
	JSONObject json = null;
	try{
		String id = request.getParameter("id");
		int ad_no = Integer.parseInt(request.getParameter("ad_no"));
		int hour = Integer.parseInt(request.getParameter("hour"));
		json = ad.ad_checkSGame(id, ad_no, hour);
		out.print(json.toJSONString());
	}catch(Exception e) {
		Debug.toDebugFile(e, tag);
		json = new JSONObject();
		json.put("responseCode", -1);
		out.print(json.toJSONString());
	}
}

//특정타임게임에 당첨된 유저는 같은 타임게임(동일한 ad)을 다시 할수 없게끔 제한.
//경품이 소진되었을경우 제한. ( 타입게임 X).
else if(tag.equals("ad_checkTimeGame")) {
	try{
		String id = request.getParameter("id");
		int ad_no = Integer.parseInt(request.getParameter("ad_no"));
		JSONObject json = new JSONObject();
		json.put("isWin", play.isWin(id, ad_no) ? 1 : 0);
		json.put("isDrained", play.isDrained(ad_no) ? 1 : 0);
		out.print(json.toJSONString());
	}catch(Exception e){
		Debug.toDebugFile(e, tag);
	}
}

//오늘 필요한 모든 이미지&용량 가져오기.
else if(tag.equals("ad_getImgToday")) {
	JSONObject json = null;
	try {
		json = ad.ad_getImgToday();
		out.print(json.toJSONString());
	} catch ( Exception e ) {
		Debug.toDebugFile(e, tag);
		json = new JSONObject();
		json.put("responseCode", -1);
		out.print(json.toJSONString());
	}
}
%>